package gen

import (
	"gitee.com/dreamwood/ez-go/maker"
	"gitee.com/dreamwood/ez-go/maker/mongo"
)

func Unit() {
	doc := maker.CreateDoc("Unit", "单位", "erp")
	doc.Add("name", "单位名称").IsString()
	doc.Add("code", "字母单位").IsString()
	doc.Generate()
}

func DeliverType() {
	doc := maker.CreateDoc("DeliverType", "交货方式", "erp")
	doc.Add("name", "交货方式").IsString()
	doc.Generate()
}

func PayType() {
	doc := maker.CreateDoc("PayType", "付款方式", "erp")
	doc.Add("name", "付款方式").IsString()
	doc.Generate()
}

func PayCashType() {
	doc := maker.CreateDoc("PayCashType", "结算方式", "erp")
	doc.Add("name", "结算方式").IsString()
	doc.Generate()
}

func TaxRate() {
	doc := maker.CreateDoc("TaxRate", "税率", "erp")
	doc.Add("name", "税率").IsString()
	doc.Add("value", "小数值").IsFloat()
	doc.Generate()
}

func TaxType() {
	doc := maker.CreateDoc("TaxType", "发票类型", "erp")
	doc.Add("name", "结算方式").IsString()
	doc.Generate()
}

func ComProductItem(doc *mongo.Document) *mongo.Document {
	doc.Add("src", "源单明细ID").IsInt()
	doc.Add("srcSN", "源单单号").IsString()
	doc.Add("product", "产品").IsJoinM2O("Product")
	doc.Add("num", "数量").IsFloat()
	doc.Add("unit", "单位").IsJoinM2O("Unit")
	doc.Add("price", "含税单价").IsFloat()
	doc.Add("money", "含税总价").IsFloat()
	doc.Add("cut", "折扣价").IsFloat()
	doc.Add("cutRate", "折扣率").IsFloat()

	doc.Add("tax", "税额").IsFloat()
	doc.Add("taxRate", "税率").IsJoinM2O("TaxRate")
	doc.Add("priceRef", "参考单价").IsFloat()
	doc.Add("moneyRef", "参考总价").IsFloat()
	doc.Add("priceConfirm", "评审单价").IsFloat()
	doc.Add("moneyConfirm", "评审总价").IsFloat()
	doc.Add("note", "备注").IsString()
	doc.Add("row", "RN").IsInt()
	return doc
}

func ApprovalData(doc *mongo.Document) *mongo.Document {
	doc.Add("isConfirm", "是否生效").IsBool()
	doc.Add("confirmAt", "生效时间").IsTime()
	doc.Add("isCancel", "是否取消").IsBool()
	doc.Add("isLock", "是否锁定").IsBool()
	doc.Add("approvalSate", "评审状态").IsString()
	doc.Add("approvalStage", "评审环节").IsString()
	return doc
}
